const express=require('express');
//引入连接池模块
const pool=require('../pool.js');
//创建路由服务器
const r=express.Router();
//添加路由
//1.注册路由
//地址:http://127.0.0.1:7741/v1/users/reg
//请求方式:post
r.post('/reg',(req,res,next)=>{
	//1.1获取post传递(body)的参数
	var obj=req.body;
	var p=/^1[3-9]\d{9}$/
	//1.2判断各项值是否为空
	if(!obj.uname){    //===''
		res.send({code:401,msg:'用户名不能为空'})
		return;   //阻止往后执行
	}
	if(!obj.upwd){
		res.send({code:402,msg:'密码不能为空'})
		return;
	}
	if(!obj.email){
		res.send({code:403,msg:'邮箱不能为空'})
		return;
	}
	if(!obj.phone){
		res.send({code:404,msg:'手机号不能为空'})
		return;
	}
	//验证手机号
	if(!/^1[3-9]\d{9}$/.test(obj.phone)){
		res.send({code:405,msg:'手机号格式错误'})
		return;
	}
	//1.3执行sql命令
	pool.query('insert into xz_user set?',[obj],(err,result)=>{
		if(err) {
			//要交给下一个中间件处理
			next(err);
			return;   //阻止往后执行
			
		}
		res.send({code:200,msg:'注册成功'});
	})
	
});
//注册结束
//2.用户登录(post/login)  (body)
//地址:http://127.0.0.1:7741/v1/users/login
//请求方式:post
r.post('/login',(req,res,next)=>{
	//2.1获取post传递的参数
	var q=req.body;
	console.log(q)
	//2.2判断
	if(!q.uname){
		res.send({code:401,msg:'账号不能为空'})
		return;
	}
	if(!q.upwd){
		res.send({code:402,msg:'密码不能为空'})
		return;
	}
	//3.3执行sql命令
	pool.query('select * from xz_user where uname=? and upwd=?',[q.uname,q.upwd],(err,result)=>{
		if(err){
		next(err);
		return;
		}
		if(result.length===0){
			res.send({code:201,msg:'登录失败'})
			return;
		}else{
			res.send({code:200,msg:'登录成功'})
			return;
			}
	});
});
//登录结束
//3.删除用户   (params)
//地址:http://127.0.0.1:7741/v1/users/4
//请求方式:delete
	r.delete('/:uid',(req,res)=>{
	//3.1获取路由传参的值
	var a=req.params
	//3.2执行sql命令
	pool.query('delete from xz_user where uid=?',[a.uid],(err,result)=>{
		if(err){
		next(err);
		return;
		}
		if(result.affectedRows==0){
		res.send({code:201,msg:'删除失败'})
		}else{
		res.send({code:200,msg:'删除成功'})
		}
	});
	});
//4.修改用户 (body)
//地址:http://127.0.0.1:7741/v1/users
//请求方法:put
r.put('/',(req,res,next)=>{
	//4.1获取post(body)传递的参数
	var obj=req.body;
	console.log(obj)
	//4.2判断各项是否为空
	var k=400; //状态码初始值
	for(var i in obj){
		k++;
		//i代表属性名   obj[i]代表属性值
		console.log(i,obj[i]);
		//如果属性值为空,提示属性名这项不能为空
		if(!obj[i]){
			res.send({code:k,msg:i+'不能为空'});
			return;
		}
	}
	//4.3执行sql命令
	pool.query('update xz_user set? where uid=?',[obj,obj.uid],(err,result)=>{
	if(err){
	next(err);
	return;
	}
	console.log(result)
	if(result.affectedRows==0){
	res.send({code:201,msg:'修改失败'})
	}else{
	res.send({code:200,msg:'修改成功'});
	}
	});
	
	
});

//导出路由器对象
module.exports=r;